#ifndef QUERYEJECUTOR_H_
#define QUERYEJECUTOR_H_

#include <map>
#include "define.h"
#include "QueryTodasLasFallas.h"
#include "QueryTodasLasFormaciones.h"
#include "QueryTodasLasLineas.h"
#include "QueryTodosLosAccidentes.h"
#include "QueryAccidentesFormacion.h"
#include "QueryFallasFormacion.h"
#include "QueryTrenesAccidente.h"
#include "QueryTrenesFalla.h"

typedef std::pair<std::string, Query* > mapa_query;


class QueryEjecutor {

private:
	static QueryEjecutor* queryEjecutor;

	std::map<std::string, Query*> querys;
	QueryEjecutor();

public:
	virtual ~QueryEjecutor();

	static QueryEjecutor* getInstance();

	void execute(ArbolUB<DIMENSION_CLAVES, CANTIDAD_BITS_CLAVES>& arbol ,ParametroQuery* parametroQuery,  std::string archivoSalida, std::string tipoQuery);

};

#endif /*QUERYEJECUTOR_H_*/
